import Vue from 'vue'
import Vuex from 'vuex'
/**
 * 简介：Vuex是一个仓库，是vue的状态管理工具，存放公共数据，任何组件都可以使用vuex里的公共数据。
 * Vuex提供了插件系统，允许我们使用 vuex-persistedstate插件，将Vuex的状态持久化到本地存储中，
 * 解决页面刷新或重新打开应用时状态丢失的问题；这里记录一下Vuex数据持久化的几种实现方案。
 * 
 * cnpm i vuex-persistedstate --save
 * 
 *API方法
createPersistedState([options])使用给定的选项创建插件的新实例。可以提供以下选项来配置您的特定需求的插件：

key ：存储持久状态的键。（默认：vuex）

paths ：部分持续状态的任何路径的数组。如果没有路径给出，完整的状态是持久的。（默认：[]）

reducer ：一个函数，将被调用来基于给定的路径持久化的状态。默认包含这些值。

subscriber ：一个被调用来设置突变订阅的函数。默认为store => handler => store.subscribe(handler)

storage ：而不是（或与）getState和setState。默认为localStorage。

getState ：将被调用以重新水化先前持久状态的函数。默认使用storage。

setState ：将被调用来保持给定状态的函数。默认使用storage。

filter ：将被调用来过滤将setState最终触发存储的任何突变的函数。默认为() => true
 */
// 导入模块
import login from "./modules/Login/index.js"
import User from "./modules/User/index.js"
import themeModule from "./modules/theme/index.js"

Vue.use(Vuex)

export default new Vuex.Store({
  modules:{
    login,
    User,
	theme: themeModule
  }
})
